home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / texte / jane152 / news.doc < prev    next >
Text File  |  1998-10-29  |  67KB  |  1,546 lines

  1. Achtung: Auf vielfachen Wunsch eines einzelnen Herrn habe ich die
  2. Sortierfolge umgedreht, d. h. die neuesten Changes stehen jetzt
  3. unten.
  4.  
  5. *** Änderungen vom 29.12.94:
  6. 1 Der Redrawbug beim schnellen Aufziehen von Blöcken mit
  7. der Maus dürfte erledigt sein.
  8.  
  9. 2 Beim automatischen Einrücken sollten jetzt keine 'Treppeneffekte'
  10. mehr entstehen.
  11.  
  12. 3 Fehler beim Sichern der Makrotasten in die INF beseitigt, der
  13. u. a. dazu führte, daß die Belegung von F1 'vergessen' wurde.
  14.  
  15. 4 Die Aufrufe 'setfkey' und 'killfkey' haben eine neue Syntax:
  16. Der erste Parameter ist eine Zeichenkette, die den Namen der
  17. Taste enthält. Die Syntax dieser Zeichenkette ist an 'ckey' angelehnt.
  18. Zulässig sind:
  19. - '!#x', wobei x für einen Buchstaben oder eine Ziffer steht.
  20. - 'sFnn', wobei s für einen Shift-Indikator analog zu 'ckey' steh
  21. ('!' = Shift, '^' = Control, '#' = Alternate) und nn die Nummer der
  22. Funktionstaste (1 <= nn <= 10) ist.
  23.  
  24. 5 Ebenfalls neu in SCEleton ist der Aufruf 'cnumber'. Der einzige
  25. Parameter ist eine interne Funktionsnummer. Diese Funktionsnummern
  26. entsprechen genau den Funktionen, die über die Tastatur und/oder die
  27. Menüleiste aufgerufen werden können. Dieser Aufruf soll im wesentlichen
  28. dazu dienen, über den Makrorecorder ("Aufzeichnen von Funktionsnummern")
  29. Makros zu erzeigen, die von der gerade geladenen Tastenbelegung
  30. unabhängig sind. (Andreas: Sollte man sämtliche Nummern dokumentieren?)
  31.  
  32. 6 In der Help-Anzeige sind die Kürzel für "Klammern selektieren"
  33. und "Wort selektieren" nicht mehr vertauscht.
  34.  
  35. 7 Beim Löschen bzw. Ausschneiden der letzten Zeile wird die die Zeile
  36. nicht entfernt, sondern nur geleert, so daß der Cursor nicht nach
  37. oben wandert.
  38.  
  39. 8 Beim Schließen einer Makrodatei erfolgt jetzt eine Extrawarnung,
  40. falls die Datei Tasten belegt hat.
  41.  
  42. 9 Beim Lesefehlern während des Ladens einer Arbeitsumgebeung sollte
  43. es jetzt nicht mehr bei jeder einzelnen F-Taste eine neue
  44. Fehlermeldung geben.
  45.  
  46. 10 Wird ein bereits geladenes Makropaket neu erzeugt, so wird ein
  47. evtl. zugehöriges Fenster geschlossen und neu geöffnet.
  48.  
  49. *** Änderungen vom 31.12.94 (die Sektkorken-Beta):
  50. 11 In zweizeiligen Hexadezimaleditfeldern in Dialogen (Hexeditor) läßt
  51. sich der Cursor jetzt in die zweite Zeile stellen. Dort können Zeichen
  52. direkt eingegeben werden. Darüber erscheint dann sofort der
  53. entsprechende ASCII-Code.
  54.  
  55. 12 Der Fontselector läßt jetzt Fonts bis 40 Punkt zu. Außerdem ist die
  56. freie Größenwahl bei Speedo-Fonts wieder möglich (war das peinlich...).
  57.  
  58. 13 Es gibt neue Shortcuts:
  59.  
  60.     Control-Shift-U = In Großschrift.
  61.     Control-Shift-L = In Kleinschrift.
  62.     Control-Shift-K = In Kapitälchen.
  63.     Control-Shift-X = Alle Fenster schließen.
  64.  
  65. 14 Es gibt eine neue Tastenfunktion: Shift-Backspace löscht rückwärts
  66. vom Cursor bis zum Zeilenanfang.
  67.  
  68. 15 Der Dialog 'Zeile anspringen' läßt nun auch relative Sprünge zu. Dazu wird eine Zahl mit Vorzeichen, also etwa '+10' oder '-20' ein-
  69. getragen. Dieser Wert wird dann zur aktuellen Zeilenummer addiert,
  70. so daß ein Vorwärts- oder Rückwärtssprung entsteht. Zahlen ohne
  71. Vorzeichen werden wie gehabt als absolute Zeilennummern aufgefaßt.
  72.  
  73. 16 Beim Scrollen mit Tasten wird nun die Zeilennummer in er Infozeile immer upgedated.
  74.  
  75. *** Änderungen vom 1.1.95 (die Katzenjammer-Beta?):
  76. 17 Der Shortcut Control-'>' für 'Rechts Einrücken' funktioniert wieder.
  77. (Da war genau ein Bit falsch)
  78.  
  79. 18 Der Bildschirm-Update bei 'Return' und 'Backspace' über
  80. Zeilengrenzen hinweg ist jetzt schneller, so daß keine Tastendrücke
  81. mehr verloren gehen sollten.
  82.  
  83. 19 'Delete' blockiert jetzt auf dem Ende der letzten Zeile eines Textes.
  84.  
  85. *** Änderungen vom 2.1.95 (die letzte Beta vor der 1.1?):
  86. 20 TEE läßt jetzt auch die Eingabe von ESC und Shift-ESC für
  87. Shortcuts zu.
  88.  
  89. 21 Wenn bei 'Zeile anspringen' die Eingabe leer bleibt, bleibt der
  90. Cursor jetzt auch in der aktuellen Zeile.
  91.  
  92. 22 JAnE merkt sich jetzt, ob der letzte Block wort- oder zeilenweise
  93. aufgezogen wurde und verhält sich bei einem Shift-Klick entsprechend,
  94. bei einem Control-Klick dagegen nicht.
  95.  
  96. 23 Ein Bug repariert, der dazu führte, daß eine aus JAnE gespeicherte
  97. JANE.INF nicht mehr alle Shortcuts enthielt.
  98.  
  99. *** Änderungen vom 3.1.95:
  100. 24 Das Feature aus 22 war noch nicht so perfekt; jetzt sollte es gehen.
  101.  
  102. 25 Im Hexeditor (und entsprechend in Hexfeldern in TEE) läßt sich der Cursorjetzt auch mit der Maus auf die ASCII-Zeile stellen.
  103.  
  104. 26 Der Cursor in Textfenstern sollte nicht mehr über den Scrollbalken
  105. gezeichnet werden.
  106.  
  107. 27 Es sollte jetzt nicht mehr passieren, daß deim schnellen Aufzeihen eines
  108. Blockes Zeilen aus der Bildschirmdarstellung verschwinden.
  109.  
  110. 28 Die Einstellungen des Druckerdialoges sollten nun korrekt in der INF
  111. gesichert werden.
  112.  
  113. *** Änderungen vom 4.1.95:
  114. 29 Bei Shift- (bzw. Control-) Klick wird nun geprüft, ob der Klick vor
  115. oder hinter der Mitte eines evtl. bereits selektierten Blockes erfolgte
  116. und demgemäß der Blockanfang oder das Blockende bewegt.
  117.  
  118. *** Änderungen vom 5.1.95:
  119. 30 Der SCEleton-Compiler konnte bei einem Syntaxfehler abstürzen, wenn
  120. noch offene 'forward'-Deklaratinen vorlagen.
  121.  
  122. 31 Der SCEleton-Aufruf 'getoption' stellte nicht vernünftig fest,
  123. ob der Cursor auf 'blinkend' stand.
  124.  
  125. 32 Das SCEleton-System hat bei Textausgaben über 'dump' bzw. 'print'
  126. Mauszeigersalat produziert.
  127.  
  128. *** Änderungen vom 6.1.95
  129. 33 Steuerung des Mauszeigers beim Starten von Makros aus dem Paketfenster
  130. korrigiert.
  131.  
  132. 34 Tom's tolles IMG in die Infobox eingebaut.
  133.  
  134. *** Änderungen vom 7.1.95
  135. 35 Wortweises Selektieren klappt jetzt auch bei einem Drag nach einem
  136. Shift-Klick in einen wortweise aufgezogenen Block.
  137.  
  138. 36 Vor dem 'shel_write' bei Programmende wird jetzt getestet, ob die
  139. GEM-Version >= 1.04 ist. Sicher ist sicher.
  140.  
  141. *** Änderungen vom 19.1.95
  142. 38 Unterstützunmg der XACC-Grundmessages und der Gruppe 1 eingebaut.
  143.  
  144. 39 Der Fehler in der Bestimmung der Größe des Systemfonts sollte jetzt
  145. behoben sein.
  146.  
  147. 40 Ein Textlineal in der Infozeile wird jetzt upgedated, wenn in der
  148. Textprofilbox eine neue Umbruchspalte eingestellt wird.
  149.  
  150. 41 Anbindung an das VA/AV-Protokoll von Gemini:
  151.  
  152.     - JAnE meldet alle Text- und Makropaketfenster bei Gemini an.
  153.     - Drag & Drop von Gemini aus läuft über das VA-Protokoll
  154.       und sollte demnach auch unter Maggi gehen.
  155.     - Darüberhinaus versteht JAnE auch AV_SENDKEY, (was ja fast mit
  156.       ACC_KEY identisch ist).
  157.  
  158. 42 JANE.INF wird zuerst in dem Verzeichnis gesucht, das durch die
  159. Environmentvariable HOME spezifiziert ist. Dadurch wird JAnE (laut
  160. einer Expertenmeinung) multiuserfähig ;-)
  161.  
  162. *** Änderungen vom 21.1.95
  163. 43 Der 3D-Look in den Dialogen ist jetzt eingebaut, und zwar
  164. abschaltbar. Die Umschaltung findet im TEE unter "Systemresourcen"
  165. statt, so daß nicht im laufenden Betrieb gewechselt werden kann.
  166. Gleichzeitig ist die Infobox etwas farbiger geworden.
  167.  
  168. 44 Ein Bug gefixt, der in SCEleton bei unbefriedigten 'forward'-
  169. Deklarationen zu Hängern führte.
  170.  
  171. *** Änderungen vom 23.1.95
  172. 45 Bei der Suche nach dem AV-Server wird jetzt auch Thing explizit
  173. gesucht. Gleichzeitig die Suche nach dem Inhalt der Env-Variablen
  174. 'AVSERVER' korrigiert.
  175.  
  176. *** Änderungen vom 30.1.95:
  177. 46 Ein Bug gefixt, der dazu führte, daß beim Suchen mit reg. Ausdrücken
  178. die Token '^' und '$' bei abgeschalteter Großschriftunterscheidung nicht
  179. funktionierten.
  180.  
  181. 47 Das komplexe Ersetzen von Leerzeilen durch "" (nichts) klappt
  182. jetzt auch.
  183.  
  184. 48 Die SCEleton-Aufruf 'openfile' und 'saveas' produzieren jetzt keine
  185. Laufzeitfehler mehr.
  186.  
  187. 49 Sehr häßlichen Bug in der Verwaltung der Makropakete gefixt, der
  188. unter Umständen Verwaltungsstrukturen überschreiben konnte.
  189.  
  190. 50 Sichergestellt, daß SCEleton beim Aufruf eines Untermakros keine
  191. internen Referenzen auf Variable mehr übergibt.
  192.  
  193. 51 Eine laufende Makroaufzeichnung kann jetzt auch über das Neuladen
  194. einer INF-Datei hinweg weiterlaufen.
  195.  
  196. *** Änderungen vom 30.1.95:
  197. 52 Bei "Sichern als" wird nun der Ausgangsname in der Titel
  198. zeiledes Fileselectors angezeigt.
  199.  
  200. 53 SCEleton erzeugt im Falle nicht auscodierter 'forward'-
  201. Deklarationen eine Fehlermeldung.
  202.  
  203. 54 Die Fensterregister sind jetzt von den internen Puffern abhängig,
  204. nicht mehr von den tatsächlichen Fenstern. Im Klartext bedeutet das, daß
  205. ein Fenster, das geschlossen und wieder geöffnet wird, stets an seiner alten Position erscheint.
  206.  
  207. *** Änderungen vom 1.2.95
  208. 55 Neue Funktion: JAnE kann Gemini's Mupfel-Fenster per Fernsteuerung
  209. öffnen bzw. toppen. Das ist als Ersatz für den 'Shell-Escape' anderer
  210. Programme gedacht, sollte aber weniger problematisch sein als die
  211. Benutzung von system(). Dazu dient der Menupunkt "Konsole öffnen" mit dem
  212. Default-Shortcut "Shift-Control-Z".
  213.  
  214. 56 Als Krönung des Ganzen enthält nun der Dialog "Programm starten"
  215. die Option "Programmstart durch Desktop". Ist sie selektiert, so wird
  216. der Name des zu startenden Programms an Gemini übergeben. Auf diesem
  217. Wege lassen sich (laut Gemini-Doku) auch Dateien "starten", für die
  218. unter Gemini eine Anwendung angemeldet ist. Unter SCEleton wird diese
  219. Option von 'startprogram' mit dem Steuerparameter 'fromdesktop=yes'
  220. benutzt.(Was hier für Gemini gesagt ist, gilt natürlich ebenso für jeden
  221. anderen AV-Server mit denselben Fähigkeiten. Bis auf die Konsole
  222. sollte z. B. Thing dasselbe bieten. Wie siehts mit Ease aus?)
  223.  
  224. *** Änderungen vom 4.2.95
  225. 57 Bug im Zusammenhang mit dem Window-Backdrop repariert.
  226.  
  227. 58 Nach jeder Änderung im GEM-Klemmbrett schickt JAnE unter
  228. Multitasking- Systemen jetzt eine SC_CHANGED-Message (nach dem
  229. Vorschlag von Thomas Much) an alle anderen Programme.
  230.  
  231. 59 Gaaanz wichtig: Der Balken in der Fortschrittsanzeige im
  232. Druckdialog erscheint jetzt in Farbauflösungen rot.
  233.  
  234. 60 Die Zeichenbreiten werden jetzt bei proportionalen Fonts wieder
  235. richtig ermittelt.
  236.  
  237. *** Änderungen vom 5.2.95
  238. 61 Neuer SCEleton-Befehl: 'release()' (ohne Parameter). Er hat
  239. folgenden Zweck: Bei 'openwindow()' wird der Text hinter dem
  240. geöffneten bzw. getoppten Fenster als von SCEleton benutzt markiert,
  241. so daß er nicht geschlossen werden kann, solnage der Makro läuft. Das
  242. bezieht sich aber auch auf das Schließen durch 'ckey("^U")' oder
  243. 'cnumber(59)'. Vor diesen Befehlen sollte man also 'release()'
  244. einfügen. Ach ja - beim Starten eines Makros mit 'ALT-G' wird dasselbe
  245. Flag auf den Quelltext gesetzt, damit der im Falle von Laufzeitfehlern
  246. garantiert noch zur Verfügung steht, um die Fehlerzeile zu markieren.
  247.  
  248. *** Änderungen vom 7.2.95
  249. 62 Es gibt jetzt auch SCEleton-Befehle zum Lesen und Schreiben
  250. von INF-Dateien:
  251.  
  252.     'saveinf(file)' Sichert die aktuelle Arbeitsumgebung in
  253.                     die Datei 'file'.
  254.     'loadinf(file)' Liest die in 'file' gespeicherte
  255.                     Arbeitsumgebung.
  256.  
  257. 'loadinf' ist in folgender Hinsicht mit Vorsicht zu genießen:
  258. Zum Laden der neuen Umgebung werden zunächst sämtliche derzeit im
  259. Speicher befindlichen Texte beseitigt. (Das ist auch zu beobachten
  260. wenn dieselbe Operation vom Menü aus gestartet wird.) Dabei werden
  261. die Flags, die 'openwindow()' setzt (siehe 61), implizit zurückgesetzt.
  262. Wer also diesen Befehl verwendet und hinterher Annahnmen darüber macht,
  263. daß sich ein bestimmter Text noch immer im Speicher befindet, ist selber
  264. schuld. Das Markieren der Fehlerzeile bei Laufzeitfehlern wird durch
  265. diesen Befehl auch unmöglich gemacht.
  266.  
  267. 63 Als Ergänzung zu den vorigen ein weiterer Befehl:
  268.  
  269.     'infpath(path)' liest oder setzt den aktuellen INF-Dateipfad.
  270.  
  271. Dieser Pfad (er enthält auch den Namen) legt fest, in welcher Datei
  272. JAnE bei Programmende die Arbeitsumgebung speichert, sofern diese
  273. Option aktiv ist. Wird ein Leerstring als 'path' übergeben, so gibt
  274. 'infpath()' nur die aktuelle Einstellung zurück. Andernfalls wird der
  275. interne Pfad auf 'path' gesetzt.
  276.  
  277. ** Änderungen vom 8.2.95
  278. 64 Und noch ein neuer Befehl:
  279.  
  280.     'datatype(x)'   gibt den Ergebnistyp des übergebenen Ausdrucks
  281.                     'x' zurück.
  282.  
  283. Genauer ist das Ergebnis von 'datatype' eine Zeichenkette mit den
  284. möglichen Werten:
  285.  
  286.     'null'      für die generische Null '$$$'
  287.     'int'       für eine Zahl
  288.     'string'    für eine Zeichenkett
  289.     'list'      für eine Liste von Werten
  290.  
  291. 65 Die Ausgangsknöpfe sämtlicher Dialog- und Alertboxen wurden dem
  292. neueren Standard angepaßt, d. h. der Knopf, der die gemeinte Aktion
  293. auslöst, liegt immer rechts unten.
  294.  
  295. *** Änderungen vom 9.2.95
  296. 66 Und weils so schön war, noch zwei neue SCEleton-Befehle:
  297.  
  298.     'findnext'      setzt eine laufende Suche fort
  299.     'replacenext'   sucht und ersetzt weiter
  300.  
  301. Sie entsprechen genau den Menübefehlen 'Weiter suchen' und
  302. 'weiterersetzen' bzw. deren Pendants auf der Tastatur. Allerdings
  303. melden sie im Gegensatz zu diesen das Ergebnis der Suche zurück. Der
  304. Rückgabewert ist wie folgt zu entschlüsseln:
  305.  
  306.     > 0:    Noch eine passende Textstelle gefunden
  307.     == 0    Keine passende Stelle mehr gefunden
  308.     < 0:    Es ist ein Fehler aufgetreten
  309.  
  310. 67 Ein Bug repariert, der beim doppelten Laden einer Datei mit Sperren
  311. zum Absturz führte.
  312.  
  313. 68 Bei der Auswahl einer Metadatei vom Druckdialog aus wird die Maus
  314. wieder eingeschaltet.
  315.  
  316. *** Änderungen vom 20.2.95:
  317. 69 Ein übler Bug repariert, der bei Belegung von F10 mit einem Makro
  318. zum Absturz führen konnte.
  319.  
  320. 70 'loadinf' und 'saveinf' prüfen nicht mehr, ob ein Fenster offen ist.
  321.  
  322. 71 Der Druckstatusdialog sieht auch wieder ordentlich aus.
  323.  
  324. 72 Der 'shel_write()' am Programmende findet nur noch statt, wenn
  325. wirklich ein Programm gestartet wurde.
  326.  
  327. 73 Auch beim 'fullen' eines Fensters wird jetzt die geänderte
  328. Fenstergröße vermerkt.
  329.  
  330. *** Änderungen vom 28.2.95:
  331. 74 Ein Bug repariert, der bei Eingabe von zwei identischen
  332. Klammerpaaren Abstürze provozierte.
  333.  
  334. 75 Alle Unterdialoge, Alertboxen etc. werden jetzt, sofern möglich, in
  335. Fenster gelegt. (Unmöglich ist es genau dann, wenn das System kein
  336. Fenster mehr öffnen kann.) Dabei wird die Menüleiste gesperrt. Der
  337. Zugriff auf Accessories bzw. Parallelprozessse ist aber möglich.
  338.  
  339. 76 Ein Bug repariert, der ab dem zweiten Start eines Makros das
  340. Abbrechen mit "Shift-Shift" sicher verhinderte.
  341.  
  342. *** Änderungen vom 1.3.95
  343. 77 Der 'ckey'-Befehl gibt jetzt im Falle von nicht vorhandenen
  344. Tastennamen einfach das erste Zeichen des übergebenen Strings aus. Der
  345. Tastenname 'ENTR' ist verschwunden (Andreas: Bitte im Handbuch
  346. nachbessern!), da Tasten soweit wie möglich über ASCII-Codes
  347. entschlüsselt werden und 'Enter' und 'Return' nunmal beide den Code 13
  348. liefern.
  349.  
  350. 78 In den Textfenstern wird nun ein Rand von 3 Pixeln weiß gelassen.
  351. Dadurch hat man zwar eine Textspalte weniger, aber dafür wird m. E.
  352. die Lesbarkeit verbessert.
  353.  
  354. *** Änderungen vom 6.3.95
  355. 79 Beim Sperren der Menüzeile für einen modalen Fensterdialog wird nun
  356. nicht mehr die ganze Breite der Zeile für das Accessory-Menü
  357. sensibilisiert.
  358.  
  359. 80 Wird eine Zeile mit Alternate-Klick selektiert, wird nun auch beim
  360. festgehaltener Maus zeilenweise weiterselektiert.
  361.  
  362. 81 Beim Speichern der Fensterkoordinaten in der INF-Datei treten jetzt
  363. hoffentlich keine Rundungsfehler mehr auf, die zu Fensterwanderungen
  364. führen.
  365.  
  366. 82 Der Abfragedialog beim wahlweisen Ersetzen liegt jetzt auch in einem
  367. Fenster.
  368.  
  369. *** Änderungen vom 7.3.95
  370. 83 In den Popups für Texte und Makropakete werden jetzt die Einträge, die
  371. sich auf offene Fenster beziehen, abgehakt.
  372.  
  373. 84 Gleichzeitig passen sich diese Popups jetzt in der Breite an die
  374. vorhandenen Einträge an.
  375.  
  376. 85 Fehler behoben, der beim Verlassen der Zeichentabelle zu allen mögliche
  377. Problemen führte.
  378.  
  379. *** Änderungen vom 13.3.95
  380. 86 Beim Laden von Texten aus einer gesicherten Arbeitsumgebung werden
  381. jetzt keine Leerzeilen mehr angehängt.
  382.  
  383. 87 Nach einem Mausklick in den freien linken Rand sollte der Cursor jetzt
  384. korrekt gezeichnet werden.
  385.  
  386. 88 Die SCEleton-Funktionen 'linelen()' und 'curcol()' arbeiten jetzt
  387. wieder korrekterweise mit Zeichenpositionen. Dabei ist zu beachten, daß
  388. Tabulatoren hier immer als ein Zeichen angesehen werden; dies gilt auch
  389. dann, wenn die expandierte Darstellung eingestellt ist.
  390.  
  391. 89 Das binäre Öffnen von Dateien klappt wieder. Außerdem gibt
  392. 'openbinary()' keine falschen Fehler mehr zurück.
  393.  
  394. 90 Zugriffe auf nicht existierende Listenelemente fängt der
  395. SCEleton-Interpreter jetzt sauber ab.
  396.  
  397. 91 Beim Sichern der Arbeitsumgebung wird das SCEleton-Fenster nicht mehr
  398. mitgesichert.
  399.  
  400. 92 Mal wieder eine neue Fehlermeldung: "2.44: Die Selektion ist kein
  401. Makroname". Sie tritt auf, wenn man versucht, einen SCEleton-Quelltext
  402. direkt aus dem Textfenster auszuführen und dabei einen Textblock
  403. selektiert hat, der kein gültiger Makroname ist. (Hat man gar nichts
  404. selektiert, so wird bekanntlich der oberste Makro ausgeführt.) Diese
  405. Situation wurde bisher stillschweigend übergangen.
  406.  
  407. *** Änderungen vom 19.3.95
  408. 93 Im Wesentlichen wurde die Version vom 13. mit einer neuen Infobox
  409. ausgestattet und als 1.19 (ohne Beta) etikettiert, damit Tom sie den
  410. STC-Leuten für Tests zur Verfügung stellen kann. Von daher sollte sich
  411. bis zur offiziellen 1.20 eigentlich nicht mehr viel tun. Für Bugreports
  412. bin ich natürlich nach wie vor offen.
  413.  
  414. 94 TEE arbeitet jetzt aus optischen Gründen immer im 3D-Look.
  415.  
  416. *** Änderungen vom 22.3.95
  417. 95 Die Kapitälchen-Routine setzt jetzt nicht nur den ersten Buchstaben
  418. eines Wortes in Großschrift, sondern auch alle anderen explizit in Klein-
  419. schrift um.
  420.  
  421. 96 Das automatische Übernehmen des Fonts aus dem Defaultprofil sollte auch
  422. wieder funktionieren.
  423.  
  424. 97 Bei "Fenster anordnen" werden die Fenster jetzt in der Horizontalen
  425. gleichmäßiger verteilt.
  426.  
  427. *** Änderungen vom 2.4.95
  428. 98 Es werden keine falschen Ein-Zeichen-Selektionen mehr stehengelassen.
  429.  
  430. 99 Der SCEleton-Befehl 'redraw()' sollte jetzt pflichtgemäß funktionieren.
  431.  
  432. *** Änderungen vom 18.4.95
  433. 100 Beim Einlesen von INF-Dateien wird die Anzahl der geladenen Texte
  434. jetzt korrekt nachgeführt, so daß es zu keinen falschen Fehlern wegen
  435. zuvieler geladener Texte mehr kommen sollte.
  436.  
  437. 101 Die Fehlermeldung "Die Datei existiert nicht, ..." (M2.7) wird jetzt
  438. nicht mehr ausgegeben, da sie die Arbeit eher behinderte als sonstwas.
  439.  
  440. 102 Bei gesperrten Texten ist auch kein Hinzuladen anderer Texte mehr
  441. möglich.
  442.  
  443. 103 Der (bisher nicht dokumentierte) SCEleton-Befehl 'loadlineal()' heißt
  444. jetzt 'loadprofile()'. Hier ist die Dokumentation:
  445.  
  446.     loadprofile(datei)
  447.  
  448. lädt zum aktuellen Text das Textprofil aus 'datei'. Er funktioniert damit
  449. wie der Menübefehl 'Profil laden'.
  450.  
  451. 104 Als Pendant dazu gibt es ferner den neuen Befehl
  452.  
  453.     saveprofile(datei)
  454.  
  455. der das Profil des aktuellen Textes in die Datei 'datei' sichert.
  456. (Beide Befehle werden jetzt auch vom Makrorecorder unterstützt.)
  457.  
  458. *** Änderungen vom 20.4.95
  459. 105 Wird in TEE eine relativ niedrige Speichergrenze (z. B. 400 K) gesetzt,
  460. so verweigert JAnE jetzt nicht mehr die Mitarbeit.
  461.  
  462. *** Änderungen vom 24.4.95
  463. 106 Die Message AP_TERM wird jetzt unter MTOS korrekt verarbeitet;
  464. unter MagiC 3 sollte es demnach auch gehen.
  465.  
  466. *** Änderungen vom 02.05.95
  467. 107 Die SCEleton-Calls 'getprofile' und 'getoption' geben jetzt keine
  468. Ziffern mehr zurück, sondern soweit möglich die Steuerstrings, mit
  469. denen die entsprechenden Optionen auch gesetzt wurden, also z. B.
  470. 'off' und 'on' statt '0' und '1'.
  471.  
  472. 108 Falls beim Laden mit Zeilenende-Code die maximale Zeilenlänge
  473. erreicht wird, werden keine Zeichen mehr unterschlagen.
  474.  
  475. *** Änderungen vom 07.05.95
  476. 109 Einige Speicherreservierungen in der Startphase besser abgesichert.
  477.  
  478. *** Änderungen vom 15.05.95
  479. 110 Wenn "Programmende mit Rückfrage" eingestellt ist, dann kann auch
  480. beim Shutdown durch die Dialogbox abgebrochen werden. Der Fehler, der
  481. angeblich unter MagiC 3 dazu führt, daß die Fenster zu früh geschlossen
  482. werden, ist unter MTOS nicht nachzuvollziehen. Schickt MagiC da WM_CLOSEs
  483. rund?
  484.  
  485. 111 Die mainimale Fensterhöhe wurde etwas vergrößert, da einige TOS-
  486. Versionen mit zu kleinen Fenstern Probleme zu haben scheinen
  487.  
  488. *** Änderungen vom 22.05.95
  489. 112 Eine Absturzmöglichkeit beim Programmende ausgebaut (passierte, wenn
  490. kein Textfenster oben lag).
  491.  
  492. 113 Beim Drag & Drop und VA_START sollten jetzt keine namenlosen Files
  493. mehr angelegt werden.
  494.  
  495. *** Änderungen vom 07.06.95
  496. 114 Redrawfehler bei Mausklicks (rechts) in hintenliegende Fenster dadurch
  497. aufgefangen, daß das fragliche Fenster kurzerhand getoppt wird.
  498.  
  499. *** Änderungen vom 12.06.95
  500. 115 Der Mauszeiger verschwindet jetzt bei Tastendruck und zeigt sich erst
  501. wieder, sobald die Maus bewegt wird. Außerdem flackert er nicht mehr so sehr
  502. beim Textcursorblinken.
  503.  
  504. 116 Die doppelten Textcursor sind jetzt hoffentlich behoben. (Ganz
  505. sicher kann ich da nicht sein, da der Fehler offenbar etwas mit dem
  506. Timing beim Blinken zu tun hat und daher nur sehr schwer zu
  507. reproduzieren ist.)
  508.  
  509. *** Änderungen vom 15.06.95
  510. 117 Eine explizite Abfrage auf die Existenz von WINCOM im Speicher
  511. eingebaut, um die Geschwindigkeitsprobleme in diesem Fall zu umgehen.
  512.  
  513. *** Änderungen vom 21.06.95
  514. 118 Im Zuge der Verbesserungen an den Directory-Routinen für BoxKite
  515. wurden die SCEleton-Calls 'Fsfirst' und 'Fsnext' so geändert, daß die
  516. Ergebnislisten zusdätzlich als letztes Element einen UN*X-artiges
  517. (oder vielmehr MiNT-artiges) Moduswort enthalten. Zur Belegung siehe
  518. MiNT-Dokus. Unter Plain-TOS muß das natürlich emuliert werden. Hier sind
  519. stets für jede Datei alle Rechte gesetzt.
  520.  
  521. *** Änderungen vom 27.06.95
  522. 119 Ein Fehler im SCEleton-Parser behoben, der bei fehlerhaften
  523. Quelltexten, die nur aus einer Zeile bestehen, zum Absturz führenkonnte.
  524.  
  525. *** Änderungen vom 10.07.95
  526. 120 Bei der Zuordnung der Textprofile zu den Texten werden jetzt die
  527. Extender OHNE Beachtung der Groß/Kleinschreibung geprüft. Das geschieht,
  528. um Fehlern auszuweichen, die auftreten, wenn JAnE aus der Mupfel gestartet
  529. wird und Dateinamen von Hand eingegeben werden (und dann natürlich nur in
  530. Kleinschrift).
  531.  
  532. 121 Bei 'Speichern als' wird jetzt nur der selektierte Block gesichert,
  533. falls einer selektiert ist.
  534.  
  535. *** Änderungen vom 11.7.95
  536. 122 Beim 'ckey()'-Befehl wird jetzt die Maus vorher versteckt und
  537. anschließend wieder gezeigt. Dadurch wird bei scrollenden Operationen
  538. das Mitscrollen des Mauszeigers unterbunden.
  539.  
  540. 123 'Speichern als' ändert jetzt auch bei Makropaketen den Fenstertitel.
  541.  
  542. *** Änderungen vom 17.7.95
  543. 124 Der Punkt 120 sollte jetzt korrekt funktionieren.
  544.  
  545. 125 Beim zeilenweisen Aufziehen von Blöcken werden jetzt Leerzeilen
  546. mitselektiert.
  547.  
  548. *** Änderungen vom 28.7.95
  549. 126 In Dialogboxen werden bei Dateinamen immer alle Zeichen akzeptiert.
  550.  
  551. *** Änderungen vom 31.7.95
  552. 127 Bei Fundstellen der Länge 0 (kommt beim Suchen mit reg. Ausdrücken
  553. auf Zeilenanfänge u. ä. vor) wird jetzt nichts mehr selektiert,
  554. sondern nur noch der Cursor auf die Fundstelle gesetzt.
  555.  
  556. 128 Die Textdarstellungsroutinen ein bißchen umorganisiert, um für den
  557. Einbau von Textattributen, Einfärbungen u. ä. vorbereitet zu sein.
  558.  
  559. 129 Beim Drag & Drop werden nun Dateien immer an der Cursorposition
  560. eingefügt, und nicht mehr an der Stelle, auf die der Mauscursor zeigt.
  561. Ursache dafür ist, daß es zu schwierig ist, mit dem Mausform
  562. 'Patschhändchen' eine bestimmte Stelle anzufahren.
  563.  
  564. *** Änderungen vom 3.8.95
  565. 130 Jetzt ist auch das direkte Drag & Drop von Textblöcken eingebaut,
  566. d. h. Textstücke können mit der Maus von einem Fenster ins andere
  567. gezogen werden. Das Verschieben wird ausgelöst, wenn man in den Block
  568. klickt und die Maustaste hält. Auch hierbei wird im Zielfenster an der
  569. Cursorposition eingefügt. Wird die Maus in den Grenzen des
  570. Ausgangsblockes losgelassen, so wird die Operation abgebrochen. Falls
  571. im Zielfenster auch schon ein Block selektiert ist, so wird dieser mit
  572. dem gedragten Text überschrieben. Das gilt nicht, wenn innerhalb
  573. desselben Fensters gedragt worden ist, da in diesem Falle vermutlich
  574. die Verdoppelung des Textblockes beabsichtigt war.
  575.  
  576. *** Änderungen vom 20.8.95
  577. 131 Jetzt ist auch das externe Drag & Drop eingebaut, d. h. der
  578. direkte Austausch von Textstücken mit parallel laufenden Applikationen
  579. nach dem MTOS-D&D-Protokoll. Das setzt als Betriebssystem MTOS oder
  580. MagiC 3 voraus. Im Rahmen dieses Protokolls kann JAnE den Datentyp
  581. '.TXT' senden und empfangen.
  582.  
  583. 132 Das interne D&D wurde so verändert, daß nur noch zwischen
  584. verschiedenen Fenstern gedragt werden kann. Wegen der Regel, daß
  585. immer an der Cursorposition eingefügt bzw. der selektierte Block
  586. überschrieben wird, scheint mir ein 'Draggen' innerhalb eines
  587. Fensters nicht mehr sinnvoll. Bei beiden Verfahren wird bei
  588. gehaltener 'Control'-Taste der Textblock ausgeschnitten, d. h. nach
  589. der Übertragung an der Quelle gelöscht. Da ein 'Control'-Klick
  590. normalerweise dazu dient, die Blockgrenzen zu verändern, ist hier die
  591. Bedienung etwas kompliziert: Man muß erst während des Ziehens die
  592. Control-Taste drücken. So lassen?
  593.  
  594. 133 Bei 'Alles schließen' war die Sicherheitsabfrage wirkungslos.
  595. Bug gefixt.
  596.  
  597. *** Änderungen vom 29.8.95
  598. 134 Eine neue Möglichkeit der Fließtextbearbeitung eingebaut. Unter
  599. Fließtext soll dabei Text verstanden werden, in dem Absatzenden mit
  600. CRLF markiert sind, während die Zeilenenden verschoben werden können.
  601. Der Fließtextmodus gilt für die interne Bearbeitung dann als aktiv,
  602. wenn der automatische Umbruch im Textprofil eingeschaltet wird.
  603.  
  604. Dann gilt auch ein neues Absatzkonzept: Ein Absatzende wird durch eine
  605. Zeile markiert, an deren Ende weder ein Leerzeichen noch ein Tab
  606. steht. Das Leerzeichen am Ende einer Zeile bedeutet also: In der
  607. nächsten Zeile geht der laufende Absatz weiter. Das klingt jetzt
  608. vielleicht kompliziert, ergibt sich aber ganz natürlich aus dem
  609. Schreibfluß, da die Leerzeichen ohnehin geschrieben werden, um die
  610. Worte zu trennen. Beim Umbruch brauchen diese Leerzeichen dann nur
  611. stehen zu bleiben. Ein neuer Absatz wird erzeugt, indem sofort nach
  612. dem letzten Wort 'Return' gedrückt wird.
  613.  
  614. Das gilt jetzt nur für die Texterfassung. Um den Fließtext auch als
  615. solchen zu speichern, ist im Textprofil die Option "Speichern als
  616. Fließtext" hinzugekommen. Ist dieser Schalter aktiv, so werden nur an
  617. den Absatzenden im Text die CRLFs oder sonstigen Zeilenden
  618. eingesetzt. Trotz der Namensgebung (Platzgründe im Dialog) wirkt
  619. diese Option auch beim Laden. Sie weist JAnE dann an, den Text an
  620. Wortzwischenräumen auf die gewünschte Breite umzubrechen. Diese
  621. Option kann unabhängig vom automatischen Umbruch ein- und
  622. ausgeschaltet werden.
  623.  
  624. Diese Option wird in den SCEleton-Aufrufen 'setprofile' und 'getprofile'
  625. mit dem Schlüsselwort 'paratext' angesprochen.
  626.  
  627. 135 Damit der Fließtext-Speicher-Schalter auch beim Laden Sinn macht,
  628. wurde sichergestellt, daß ein evtl. zum Text gehöriges Textprofil immer
  629. VOR dem Text selbst geladen und ausgewertet wird.
  630.  
  631. 136 Zusätzlich sucht JAnE immer als erstes Profil zu einem Text eine
  632. Profildatei, die 'Textname.JTP' heißt und im selben Ordner wie der
  633. Text liegen muß. Zu 'erato.c' wird also beispielsweise 'erato.JTP'
  634. gesucht. Dementsprechend wird beim Sichern des aktuellen Textprofils
  635. dieser Name im Fileselektor vorgegeben.
  636.  
  637. *** Änderungen bis 11.11.95
  638. 137 Die Zeichensatzauswahl für die Bildschirmanzeige ist aus dem
  639. Textprofildialog in einen eigenen Menüpunkt gewandert.
  640.  
  641. 138 Das wird ein etwas längerer Eintrag, da sich eine ganze Menge getan
  642. hat. Bitte genau lesen!
  643.  
  644. Das Wesentliche zuerst: JAnE kennt jetzt Textattribute!
  645. Genauer gesagt: Es ist möglich, Textpassagen kursiv, fett, hell,
  646. unterstrichen und/oder in einer von 7 Farben (den VDI-Farbindizes
  647. 1-7) erscheinen zu lassen.
  648.  
  649. Diese Option muß über das Textprofil eingeschaltet werden. Die
  650. entsprechenden Radiobuttons im Profildialog (sie haben die
  651. Zeichensatzauswahl verdrängt) steuern auch die Behandlung der
  652. Attribute beim Abspeichern (dazu unten mehr). Mit dem Menüpunkt
  653. 'Bearbeiten/Stil u. Farbe' wird entweder eine Attributkombination zum
  654. Schreiben vorgegeben oder ein selektierter Block mit neuen Attributen
  655. ausgestattet.
  656.  
  657. Zunächst sind ein paar Worte zur Implementierung angebracht: Die
  658. interne Darstellung erfolgt über 'versteckte' Steuerzeichen mit
  659. ASCII-Codes >= 240, die immer dort stehen, wo ein Attributwechsel
  660. erfolgt. (Sie können z. Zt. z. B. mit dem Hexeditor sichtbar gemacht
  661. werden.) Das impliziert natürlich, daß solche Zeichen nicht einfach
  662. so eingegeben werden können sollten (auch nicht über den Hexeditor).
  663. Das ist schon mal ein Grund, weshalb diese Option abschaltbar ist.
  664. (Ein kleiner Nebennutzen dieses Ansatzes: Es ist sehr einfach, diese
  665. Steuerzeichen in die 'E-Mail-Attribute' (* für Fettdruck, _ für
  666. Unterstreichungen etc.) zu übersetzen.)
  667.  
  668. Nun sind solche Sonderzeichen im Text aber u. U. beim Abspeichern
  669. nicht erwünscht, weil sie z. B. einen Compiler übel zum Stottern
  670. bringen können. Daher gibt es zur Behandlung beim Speichern mehrere
  671. Möglichkeiten:
  672.  
  673. a) Die Steuerzeichen können beim Speichern im Text belassen werden.
  674. b) Die Steuerzeichen können beim Speichern unterschlagen werden.
  675.    (Diese Möglichkeit möchte ich mir für das kommende
  676.    Syntax-Highlighting offenhalten. Dann könnten - je nachdem, wie
  677.    schnell der Scanner wird - die Steuerzeichen beim Speichern
  678.    gestrichen und beim Laden vom Scanner neu erzeugt werden.)
  679. c) Die Steuerzeichen können getrennt vom Text in einer eigenen Datei
  680.    untergebracht werden. (Auf die Idee bin ich gekommen, als ich mich
  681.    ein wenig mit dem Mac-Dateisystem befaßt habe - Stichwort
  682.    Resource-Fork.) Das Handling ist natürlich unter TOS etwas
  683.    komplizierter, darum biete ich diese Möglichkeit hier nur als
  684.    Alternative an. Sie hat aber den Vorzug, daß die 'nackte' Textdatei
  685.    als Input für Compiler etc. verwendet werden kann und die
  686.    Attributinformationen trotzdem nicht verloren gehen. Der Name dieser
  687.    Attributdatei wird aus dem Namensrumpf der Textdatei und der Endung
  688.    'JTR' gebildet. (Also: 'dummy.c' -> 'dummy.JTR') Diese JTR-Datei
  689.    enthält zudem auch das Textprofil, mit dem die Textdatei bearbeitet
  690.    wurde.
  691.  
  692. Ein Sonderfall ist die Behandlung beim Schreiben ins GEM-Clipboard. In
  693. diesem Fall werden zwei Dateien erzeugt: SCRAP.TXT und SCRAP.JTX, von
  694. denen die letztere die Attributinformationen enthält. Bei der Arbeit
  695. mit dem internen Clipboard werden die Steuerzeichen beim Einfügen in
  696. Texte mit abgeschalteten Steuerzeichen entfernt. Wäre hier eine
  697. Warnung angebracht?
  698.  
  699. Was fehlt noch?
  700. - Der Ausdruck von Texten mit Attributen geht zur Zeit nur per GDOS,
  701.   nicht über den normalen Druckertreiber. Bevor ich daran etwas mache:
  702.   Hat schon mal jemand eine Anpassung für HP-Laser oder -Tintenspritzer
  703.   gebaut? Sind dafür evtl. die Druckerstrings zu kurz definiert
  704. - Der 'grafische Blocksatz' arbeitet zur Zeit nicht mehr; ich denke
  705.   darüber nach, dieses Feature ganz zu streichen, da es mir in dieser 
  706.   Form nicht mehr sinnvoll erscheint.
  707. - Einige der Textbearbeitungsfunktionen machen garantiert noch
  708.   Probleme, wenn Steuerzeichen im Text stehen ;-)
  709. - Die Textattribute werden von SCEleton aus noch in keinster Weise
  710.   unterstützt.
  711. - Und natürlich noch der Scanner für das Syntax-Highlighting.
  712.  
  713. ************* Achtung: ******************
  714. Diese Änderungen brachten es mit sich, daß einige Teile von JAnE
  715. (u. a. Bildschirmdarstellung von Text) von Grund auf neu geschrieben
  716. wurden. Diese Version ist mit entsprechender Vorsicht zu genießen!!!
  717.  
  718. *** Änderungen vom 13.11.95
  719. 139 JAnE unterstützt jetzt auch die Programmier-Schnittstelle vo
  720. BoxKite 1.7x, falls dieser im Fenster liegt.
  721.  
  722. 140 Ein Bug gefixt, der dazu führte, daß die Einstellungen des
  723. Druckerdialogs nicht korrekt in die INF gesichert wurden.
  724.  
  725. 141 Beim Einschalten der regulären Ausdrücke im Suchdialog wird
  726. jetzt nicht mehr das komplexe Ersetzen erzwungen.
  727.  
  728. *** Änderungen vom 20.1.96
  729. 142 Nach langer Pause gehts weiter: Der Druckerdialog wurd
  730. überarbeitet: Wesentliche Neuerung ist die Geräteauswahl. Am oberen
  731. Rand der Box liegen jetzt zwei Popups, von denen das Linke einen
  732. Gerätetyp, das Rechte ein Gerät dieses Types auswählt. Dabei verstehe
  733. ich unter einem Gerätetyp i. a. eine GDOS-Gerätekategorie, die durch
  734. die erste Ziffer der ASSIGN.SYS-Kennung ausgedrückt wird (2=Drucker,3
  735. Metafile usw.) Als spezielle Klasse kommt der "Drucker im
  736. Textmodus" (d. h. zum Ausdruck über GEMDOS) dazu. Der Sinn der Sache
  737. besteht darin, daß alle GDOS-Geräte zur Verfügung stehen, ohne daß
  738. beim Start alle Gerätenummern bis 99 getestet werden müssen. Der Test
  739. erfolgt für den aktuellen Typ bei der Auswahl im Typenpopup. Im Zuge
  740. dessen ist die Gerätenummernauswahl im TEE unter "Systemressourcen"
  741. natürlich entfallen. 
  742.  
  743. 143 Fehler beim komplexen Ersetzen repariert, der bei Fundstellen
  744. auftrat, die mit einem Zeilenende abschlossen.
  745.  
  746. *** Änderungen vom 21.1.96
  747. 144 Das Suchen funktioniert nun auch innerhalb von Makros bei Texten,
  748. die Attribute enthalten. Gleichzeitig die Speicherroutine dahingehend
  749. geändert, daß auch Nullbytes als Zeilenenden funktionieren.
  750.  
  751. 145 Bei binär geladenen Texten werden die Attribute sofort und
  752. prinzipiell ausgeschaltet.
  753.  
  754. 146 Beim Zurücksetzen wurden die Fenstermaße nicht an einen evtl.
  755. geänderten Font angepaßt. Das konnte zu Redrawfehlern führen.
  756.  
  757. *** Änderungen vom 4.2.1996
  758. Das gibt jetzt wieder einen größeren Batzen:
  759.  
  760. 147 Das Attributmenü wurde etwas überarbeitet. Neu ist der Punkt
  761. "Kein Attribut", der auf schwarze Schrift ohne Effekte umschaltet.
  762.  
  763. 148 Es ist jetzt auch möglich, im Textmodus mit Attributen zu drucken.
  764. Dazu existiert im TEE eine zweite Druckeranpassungsbox, in der die
  765. Steuersequenzem zum Einschalten der Stile bzw. Farben eingestellt
  766. werden können. Sie sollte für sich selbst sprechen.
  767.  
  768. 149 Die Alarmboxen beim Suchen ("Text nicht gefunden" bzw. "Text wurde
  769. soundso oft ersetzt") können jetzt per "Einstellungen" abgeschaltet
  770. werden. Mißerfolge beim Suchen werden dann aber mit einem Piepser
  771. quittiert, damit wenigstens noch eine Rückmeldung da ist. Diese
  772. Einstellung wird von SCEleton aus über 'setoption' und 'getoption'
  773. mit dem Argument 'searchalerts' gesetzt bzw. abgefragt.
  774.  
  775. 150 Der 'grafische Blocksatz' beim Druck über GDOS ist entfallen.
  776.  
  777. 151 Es gibt SCEleton-Befehle zum Setzen und Abfragen von
  778. Textattributen:
  779.  
  780.     'setstyle(style)'   Stattet den selektierten Block mit den
  781.                         angegebenen Attributen aus oder bestimmt
  782.                         die Attribute für die nächste Zeicheneingabe,
  783.                         falls kein Block selektiert ist.
  784.                         (Funktioniert also wie "Stil/Farbe" unter
  785.                         "Bearbeiten".)
  786.     'plainstyle()'      Wie 'setstyle()', nur daß alle Attribute
  787.                         abgeschaltet werden, d. h. es wird schwarze,
  788.                         unverzierte Schrift gewählt (vgl. "Kein
  789.                         Attribut").
  790.     'getstyle()'        Gibt die Attribute des selektierten Blockes
  791.                         oder der nächsten Texteingabe zurück.
  792.  
  793. Im Parameter 'style' von 'setstyle' bzw. im Rückgabewert vo
  794. 'getstyle' werden die Attribute über parametrische Schlüsselwörter
  795. wie folgt kodiert:
  796.  
  797.     Name            Werte       Bedeutung
  798.     ----            -----       ---------
  799.     'underlined'    'nil'       Status nicht verändern.
  800.                     'off'       Unterstreichung beenden
  801.                     'on'        Unterstreichung beginnen
  802.     'slanted'       dito        Kursivschrift
  803.     'bold'          dito        Fettschrift
  804.     'light'         dito        Helle Schrift
  805.     'color'         'nil'       Farbe nicht verändern
  806.                     'black'     Farben
  807.                     'red'
  808.                     'green'
  809.                     'blue'
  810.                     'cyan'
  811.                     'yellow'
  812.                     'magenta'
  813.  
  814. Beispiel:
  815.  
  816.     setstyle('underlined=on,color=blue');
  817.  
  818. Fehlende Attribute werden unverändert gelassen, als ob sie
  819. mit 'nil' gesetzt worden wären.
  820.  
  821. 152 Der Suchdialog hat einige neue Möglichkeiten erhalten: Zunächst
  822. kann angegeben werden, daß der Suchtext nur als ganzes Wort gefunden
  823. werden soll. Ferner können zum Suchtext Attribute mit angegeben
  824. werden. Eine solche Suche ist nur dann erfolgreich, wenn der Text und
  825. die Attribute gefunden werden. Analog können beim Ersetzen Attribute
  826. angegeben werden, die mit dem Ersetztext eingefügt werden.
  827. Schließlich liegen hinter den Eingabefeldern jetzt Popups, die die
  828. letzten 6 benutzten Strings speichern. Dabei werden wiederbenutzte
  829. Strings nach oben 'recycled' und bei Platzmangel der Älteste
  830. herausgeschoben. (Das ähnelt verdächtig dem Pfadmenü in BoxKite ;-)
  831.  
  832. Entsprechende Erweiterungen in SCEleton: Der Modusparameter von
  833. 'findreplace' kann jetzt auch die Option 'word=yes/no' enthalten, der
  834. die Suche nach ganzen Wörtern steuert. Für dias Suchen/Ersetzen mi
  835. Attributen gibt es den Befehl 'xfindreplace' mit der Syntax:
  836.  
  837.     xfindreplace(string, replace, optionen, suchstil, ersetzstil)
  838.  
  839. Dabei decken sich die ersten drei Parameter mit denen von 'findreplace'.
  840. 'suchstil' und 'ersetzstil' definieren die Attribute, wie unter
  841. 'setstyle' beschrieben.
  842.  
  843. 153 Im Formatierdialog können jetzt auch Einrückungen definiert
  844. werden. Dabei kann angegeben werden, ob alle Zeilen oder nur die
  845. Absatzköpfe eingerückt werden sollen. Textbreite und Einrücktiefe
  846. werden in Zeichenspalten angegeben. Achtung: Die Einrücktiefe wird
  847. von der Textbreite subtrahiert, d. h. bei 70 Spalten Textbreite und 4
  848. Spalten Einrücktiefe stehen 66 Spalten für Text zur Verfügung. Diesen
  849. erweiterten Möglichkeiten entspricht eine erweiterte
  850. SCEleton-Funktion mit folgender Syntax:
  851.  
  852.     xreformat(modus, breite, einrueck);
  853.  
  854. Die Parameter funktionieren wie folgt:
  855.  
  856. 'modus':    Bestimmt, was gemacht wird: Es handelt sich hier um
  857.             parametrische Schlüsselwörter mit den folgenden
  858.             Möglichkeiten:
  859.  
  860.             Name            Werte       Bedeutung
  861.             ----            -----       ---------
  862.             'mode'          'left'      Wie beim alten 'reformat()'.
  863.                             'center'
  864.                             'right'
  865.                             'justify'
  866.             'indent'        'none'      Nichts einrücken.
  867.                             'paras'     Absatzköpfe einrücken.
  868.                             'all'       Alle Zeilen einrücken
  869.  
  870. 'breite':   Textbreite in Spalten.
  871. 'einrueck': Einrückung in Spalten.
  872.  
  873. Beispiel:
  874.  
  875.     xreformat('mode=justify,indent=paras', 70, 4);
  876.  
  877. 154 Im Makrorecorder für den Suchdialog wurde 'complex' falsch
  878. aufgezeichnet.
  879.  
  880. *** Änderungen vom 11.2.1996
  881. 155 Scrollfehler in der Hilfebox behoben.
  882.  
  883. 156 Wenn der Textcursor wieder in den sichtbaren Bereich geholt wird,
  884. wird der Slider jetzt korrekt nachgeführt.
  885.  
  886. 157 Im Hexeditor kann der Cursor nicht mehr mit der Maus hinter das
  887. Ende der Eingabe gestellt werden.
  888.  
  889. *** Änderungen bis 2.4.1996
  890. Mal wieder eine längere Pause, aber dafür einige News:
  891.  
  892. 158 Ein Bug korrigiert, der beim erfolglosen Rückwärtssuchen nach
  893. regulären Ausdrücken zum Absturz führte.
  894.  
  895. 159 Die Kommandozeilenargumente -x, -r, -q und -[Zeile] werden auch
  896. dann ausgewertet, wenn die Kommandozeile per VA_START bzw. D&D
  897. übergeben wurde. Das Argument -[Zeile] wird nicht ausgewertet, wenn
  898. die Dateien ins aktuelle Fenster eingefügt werden sollen.
  899.  
  900. 160 Ist ein Text einer Profildatei zugeordnet, so wird diese bei
  901. Änderungen in einem der Textprofildialoge sofort aktualisiert, d.h.
  902. das Sichern von Hand kann entfallen. Eine solche Zuordnung entsteht,
  903. wenn die Profildatei beim Öffnen des Textes automatisch oder später
  904. von Hand geladen oder unter einem Dateinamen gesichert wird.
  905.  
  906. 161 Wenn mehrere Texte derselben Profildatei zugeordnet sind (z. B.
  907. über den Dateityp) und in einem dieser Texte das Profil verändert
  908. wird, so werden alle betroffenen Texte automatisch angepaßt.
  909.  
  910. 162 Beim Beenden von JAnE wird in JANE.INF anstelle der kompletten
  911. Profilinformationen nur ein Verweis auf die Profildatei gespeichert,
  912. sofern eine zugeordnet war. Falls die Zuordnung über den Dateityp
  913. zustande kam, so wird in JANE.INF nur diese Tatsache vermerkt. Das
  914. soll bewirken, daß zwischenzeitliche Änderungen der Typzuordnungen
  915. über TEE sofort wirksam werden.
  916.  
  917. 163 Beim automatischen Umbruch werden an den Zeilenenden nur noch
  918. Leerzeichen entfernt, aber keine Tabs mehr. Dadurch springt der
  919. Cursor nicht mehr, wenn ein Tab am Zeilenende eingefügt wird.
  920.  
  921. 164 Die Textattribute haben jetzt ihre Daseinsberechtigung erhalten:
  922. Das Syntax-Highlighting ist eingebaut!
  923.  
  924. Es ist jetzt also möglich, in Programmtexten, TeX-Texten etc.
  925. Textteile anhand ihrer syntaktischen Bedeutung durch Farben und/oder
  926. Attribute hervorzuheben. Diese Features werden über das Textprofil
  927. gesteuert und im Dialog "Optionen/Hervorhebungen" eingestellt. Zuvor
  928. müssen sie aber unter "Optionen/Textprofil" eingeschaltet werden.
  929. Andernfalls ist "Hervorhebungen" nicht anwählbar.
  930.  
  931. Unter "Hervorhebungen" können die folgenden Textbestandteile mit
  932. Stilkombinationen versehen werden: Zeichenketten, Kommentare und
  933. Schlüsselwörter. Zeichenketten und Kommentare werden wie gehabt unter
  934. "Syntaktisches" definiert. Die Schlüsselwortliste befindet sich unter
  935. "Hervorhebungen". Bei einem Schlüsselwort, das hier eingetragen wird
  936. muß es sich natürlich um ein Wort im Sinne der Definition unter
  937. "Syntax" handeln.
  938.  
  939. Neben der Schlüsselwortliste können Schlüsselwörter auch über eine
  940. Markierung definiert werden. Das bedeutet einfach, daß jedes Wort,
  941. dem ein bestimmtes Markierungszeichen ohne trennendes Leerzeichen
  942. vorausgeht, als Schlüsselwort angesehen wird. Wird als Markierung
  943. z.B. der Backslash eingestellt, so hat man alle TeX-Befehle erfaßt,
  944. ohne auch nur ein Schlüsselwort von Hand einzugeben.
  945.  
  946. *** Änderungen bis 5.4.1996
  947. 165 Es ist jetzt nicht mehr möglich, dieselbe Datei in mehreren
  948. Textpuffern zu öffnen. Dies scheint mir im Verhältnis zum praktischen
  949. Nutzen zu verwirrend. Wird versucht eine Datei zum zweitenmal zu
  950. öffnen, so erscheint ein Alert, der die Auswahl bietet, die Datei
  951. anzuzeigen (d.h. das Fenster zu toppen), oder sie neu zu laden (was
  952. dem Zurücksetzen über das Menü entspricht).
  953.  
  954. 166 SCEleton erzeugt keinen Laufzeitfehler mehr, wenn einem
  955. Stringelement der ASCII-Code 255 zugewiesen werden soll.
  956.  
  957. 167 Wieder ein neuer SCEleton-Befehl:
  958.  
  959.     rv = stripchars(string, class);
  960.  
  961. Dieser Befehl entfernt aus der Zeichenkette 'string' alle Zeichen der
  962. Klasse 'class' und liefert das Ergebnis in 'rv' zurück. Dabei muß
  963. 'class' als Zeichenklasse im Sinne der regulären Ausdrücke angegeben
  964. werden. Mit diesem Befehl lassen sich leicht die
  965. Attribut-Steuerzeichen aus einer Textzeile entfernen:
  966.  
  967.     text = stripchars(zeile, "[\xf0-\xff]");
  968.  
  969. 168 Die 3D-Dialoge sind jetzt standardmäßig eingeschaltet und müssen
  970. über TEE ausgeschaltet werden.
  971.  
  972. *** Änderungen bis 10.4.1996
  973. 169 Wenn JAnE komplett ikonifiziert ist (Control-Click auf den Smaller)
  974. und ein neues Fenster geöffnet werden soll, wird zuerst alles
  975. entikonifiziert.
  976.  
  977. 170 Bei der Anmeldung zum VA-Protokoll wird jetzt der App-Name
  978. verwendet, unter dem JAnE beim AES tatsächlich bekannt ist. Das räumt
  979. hoffentlich die Probleme mit Thing aus.
  980.  
  981. *** Änderungen bis 27.4.199
  982. 171 Der automatische Umbruch wurde überarbeitet. Die Probleme im
  983. Zusammenhang mit dem autom. Einrücken und Zeilen ohne Umbruchstellen
  984. sollten damit behoben sein.
  985.  
  986. 172 Beim Öffnen eines neuen Textes wurde u. U. nicht korrekt erkannt,
  987. ob die Datei schon geladen war.
  988.  
  989. 173 Die Routine für die Blockselektion durch Aufziehen hatte immer
  990. noch Zeichenfehler beim wortweisen Selektieren.
  991.  
  992. 174 Beim zeilenweisen Selektieren bleibt jetzt die Startzeile immer
  993. selektiert.
  994.  
  995. 175 Es wird jetzt korrekt erkannt, ob ein Mausklick in den bestehenden
  996. Block erfolgte, um das Drag&Drop anzubieten.
  997.  
  998. *** Änderungen bis 5.5.1996
  999. 176 Beim Highlighting wurde die Cursorpositionen beim Einfügen der
  1000. Steuerzeichen nicht immer korrekt nachgeführt. Das war wohl die
  1001. Ursache für Wilfrieds Fehler 42 bis 44.
  1002.  
  1003. 177 Das Handling der Keywordliste im Dialog 'Hervorhebungen' wurde
  1004. überarbeitet. Damit sollten die Abstürze beim Löschen von Keywords
  1005. erledigt sein. Zudem ist es nicht mehr möglich, Keywords doppelt
  1006. einzugeben; und es ist ein Autolocator dazugekommen.
  1007.  
  1008. *** Änderungen bis 12.5.1996
  1009. 178 Beim automatischen Zeilenumbruch werden Zeilen, die nur aus Spaces
  1010. und Tabs bestehen, nicht mehr verändert.
  1011.  
  1012. 179 Der Bildschirmaufbau beim automatischen Umbruch wurde überarbeitet
  1013. und sollte etwas flotter geworden sein. 180 Der Startupcode erkennt
  1014. jetzt beim Parsen der Kommandozeile einfache und doppelte
  1015. Anführungszeichen. Das ARGV-Verfahren geht jetzt auch wieder.
  1016.  
  1017. 181 Unter case-sensitiven Dateisystemen werden jetzt die Resource-
  1018. und Message-Datei als 'jane.rsc' und 'jane.msg' (also in
  1019. Kleinbuchstaben) gesucht. Für TEE gilt dasselbe.
  1020.  
  1021. 182 Der SIGTERM-Handler setzt jetzt nur eine globale Variable, die
  1022. in der Hauptschleife regelmäßig abgefragt wird. Damit ist beim
  1023. Beenden die Anzeige von Fehlermeldungen über GEM-Aufrufe möglich.
  1024.  
  1025. 183 TEE läßt jetzt im Dialog für die Profildateien Kleinbuchstaben zu.
  1026.  
  1027. 184 Werden im aktuellen Textprofil die Attribute abgeschaltet, so
  1028. werden jetzt auch in allen betroffenen Texten die Steuerzeichen
  1029. entfernt.
  1030.  
  1031. 185 Bei "Speichern unter..." erhält der Text nun automagisch das
  1032. zum neuen Namen passende Textprofil.
  1033.  
  1034. 186 Blöcke aus Texten mit Syntax-Highlighting werden grundsätzlich
  1035. ohne Attribute ausgeschnitten oder kopiert. Ich weiß zwar noch nicht,
  1036. ob das der Weisheit letzter Schluß ist, es ist aber ein stabilerer
  1037. Stand als vorher.
  1038.  
  1039. 187 Zu Texten mit Syntax-Highlighting werden jetzt die Blockgrenzen
  1040. korrekt in die INF-Datei geschrieben.
  1041.  
  1042. *** Änderungen bis 12.5.1996
  1043. 188 Ein übler Fehler beseitigt, der dazu führte, daß die Informationen
  1044. über geladene SCC-Files nicht korrekt in die INF-Datei geschrieben
  1045. wurden. Das Resultat waren zerstörte INF-Dateien.
  1046.  
  1047. 189 An TEE kann jetzt auch eine Datei per Kommandozeile übergeben
  1048. werden.
  1049.  
  1050. *** Änderungen bis 25.5.1996
  1051. 190 Der Dialog "Suchen & Ersetzen" wurde optisch überarbeitet.
  1052.  
  1053. 191 SCEleton merkt sich jetzt die von Fcreate() und Fopen() geöffneten
  1054. Handles und schließt sie bei einem Abbruch der Makrosequenz automatisch.
  1055.  
  1056. 192 Ein neues SCEleton-Statement:
  1057.  
  1058.     rv = Fexist(dateiname);
  1059.  
  1060. Wenn die Datei existiert, wird in 'rv' der Wert 1 zurückgegeben,
  1061. ansonsten der Wert 0.
  1062.  
  1063. 193 Die SCEleton-Befehle 'findreplace()' und 'xfindreplace()'
  1064. funktionieren jetzt etwas anders. Bisher wurde eine reine
  1065. Suchoperation daran erkannt, daß der Ersatztext leer war. Dadurch war
  1066. es nicht möglich, die Fundstellen durch 'nichts' zu ersetzen, d. h.
  1067. zu löschen. Daher wird eine reine Suchoperation nunmehr dadurch
  1068. festgelegt, daß der Schlüsselwortparameter 'replace' fehlt oder als
  1069. 'replace=no' angegeben ist.
  1070.  
  1071. ACHTUNG: Zur Sicherheit sollten Makropakete, die diesen Befehl
  1072. verwenden, neu übersetzt werden!!!!!
  1073.  
  1074. 194 TEE sucht jetzt auch die Resource von JAnE (wird zum Festlegen der
  1075. Tastaturbelegung gebraucht) als 'jane.rsc'.
  1076.  
  1077. *** Änderungen bis 14.7.1996
  1078. 195 Die Bedienung des Funktionsbereiches Suchern und Ersetzen" wurde
  1079. ein wenig verändert (in Mac-Richtung ;-). Der Menüpunkt "Weiter ersetzen"
  1080. ist entfallen und wurde durch 3 neue Punkte ersetzt:
  1081.  
  1082.     "Ersetzen": Ersetzt die aktuelle Selektion durch den Ersetztext.
  1083.     Wird er direkt nach einem Suchbefehl aufgerufen, so entspricht
  1084.     das Resultat genau den Erwartungen ;-) Es ist aber eine optische
  1085.     Prüfung des Suchergebnisses vor dem Ersetzen möglich.
  1086.  
  1087.     "Ersetzen und weitersuchen": Wie oben, nur daß anschließend in der
  1088.     voreingestellten Richtung weitergesucht wird. Dadurch wird ein
  1089.     "wahlweises Ersetzen" möglich, ohne daß das Programm in den
  1090.     Abfrageboxen hängt. Das alte wahlweise Ersetzen kann aber nach
  1091.     wie vor im Suchdialog angefordert werden.
  1092.  
  1093.     "Alles ersetzen": Es wird ab der aktuellen Cursorposition bzw. der
  1094.     aktuellen Selektion in der vorgewählten Richtung bis zum Textende
  1095.     alles ersetzt.
  1096.  
  1097. Der SCEleton-Befehl 'replacenext()' existiert nach wie vor.
  1098.  
  1099. 196 Die Information über das Dateiformat (ASCII-Text, Zeilenende oder
  1100. feste Länge) ist jetzt Teil des Textprofils. Damit kann ein einmal
  1101. binär geladener text nach Abspeichern des Profils automatisch immer
  1102. wieder mit denselben Einstellungen geöffnet werden.
  1103.  
  1104. 197 Ein Fehler beseitigt, der zu defekten INF-Dateien führte, falls
  1105. Makropakete geladen waren.
  1106.  
  1107. 198 Ein übler Fehler beseitigt, der zu Abstürzen führen konnte, wenn
  1108. im Textprofil nur eine der beiden Kommentarvarianten tatsächlich
  1109. definiert war.
  1110.  
  1111. 199 Beim Einrücken nach links wurden Hervorhebungssteuerzeichen falsch
  1112. behandelt.
  1113.  
  1114. *** Änderungen bis 8.8.96
  1115. 200 Die Anzahl der Menüpunkte, die das Textprofil betreffen, ist so
  1116. groß geworden, daß der ganze Komplex in ein eigenes Menü gewandert ist.
  1117. Im einzelnen ist folgendes dazugekommen bzw. geändert:
  1118.  
  1119. 201 Die drei möglichen Infozeilen können auch 'gestapelt', d. h.
  1120. übereinander angezeigt werden. Daher sind aus den Radiobuttons im
  1121. Dialog "Textprofil/Allgemeines" Checkboxen geworden. Aus optischen
  1122. Gründen ist der Cyclebutton in der Infozeile entfallen. Das
  1123. Weiterschalten mit "Shift-Escape" funktioniert aber noch.
  1124.  
  1125. 202 Die Elemente, die sich mit der Pflege der freien Tabulatoren
  1126. befassen, sind aus dem Dialog "Textprofil/Allgemeines" in einen
  1127. eigenen Dialog gewandert. Dieser läßt sich nur dann aufrufen, wenn
  1128. die freien Tabulatoren aktiv sind und das Textlineal in der Infozeile
  1129. angezeigt wird. Er kann über den Menüpunkt "Tabulatoren" oder über
  1130. einen Doppelklick auf das Textlineal erreicht werden. Die
  1131. Linealanzeige im Dialog ist entfallen; dafür wirken die Änderungen
  1132. sofort auf die Linealanzeige in der Infozeile des dahinterliegenden
  1133. Fensters.
  1134.  
  1135. 203 Es gibt jetzt auch einen Menüpunkt zum Ändern des Dateiformats
  1136. im Textprofil mit folgenden Möglichkeiten:
  1137.  
  1138. Die Übergeordneten Radiobuttons schalten zwischen ASCII- und
  1139. Binärmodus um. Im ASCII-Modus kann zwischen TOS-, UNIX- und
  1140. Mac-Zeilentrennern gewählt werden. Zusätzlich läßt sich das Speichern
  1141. als Fließtext auch hier einschalten. Im Binärmodus kann der
  1142. verwendete Zeilentrenner direkt angegeben werden; oder es wird das
  1143. Speichern ganz ohne Zeilentrenner gewählt.
  1144.  
  1145. Ein paar Bemerkungen zum Laden: Ein ASCII-Text wird beim Laden
  1146. automatisch daraufhin untersucht, ob TOS-, UNIX- oder
  1147. Mac-Zeilentrenner verwendet werden. Diese werden dann auch bei
  1148. Speichern wieder verwendet. Dies kann nur für den einzelnen Text im
  1149. Dateiformatdialog übersteuert werden. Für Binärdateien kann nur ein
  1150. Zeilentrenner im Textprofil hinterlegt angegeben werden. Der
  1151. alternative Zeilentrenner, der beim "Binären Laden" angegeben werden
  1152. kann, ist nur als Hilfe beim Import gedacht. (Hmm - gibt es eigentlich
  1153. Situationen, in denen das sinnvoll ist?)
  1154.  
  1155. 204 Ein Fehler repariert, der beim Kopieren von Absätzen mit
  1156. Hervorhebungen 'interne Parameterfehler' auslöste.
  1157.  
  1158. 205 Der Befehl 'unsetenv' erzeugt keine falschen Fehlermeldungen
  1159. mehr.
  1160.  
  1161. *** Änderungen bis 31.08.96
  1162. 206 Ein Fehler bei der Einfärbung von mehrzeiligen Kommentaren
  1163. korrigiert, der dazu führen konnte, daß Text vor dem Kommentarbeginn
  1164. mit gefärbt wurde.
  1165.  
  1166. 207 Im Hexeditor werden keine störenden Zeichen mehr eingeblendet.
  1167.  
  1168. 208 Beim Laden von ASCII-Texten sollten keine überflüssigen
  1169. Leerzeilen mehr angehängt werden.
  1170.  
  1171. 209 Fehler bei Einfärbung von mehrzeiligen Kommentaren korrigiert,
  1172. der dazu führte, daß u. U. bis weit über das Kommentarende hinaus
  1173. gefärbt wurde.
  1174.  
  1175. *** Änderungen bis 10.10.96
  1176. 210 Die Verwaltung der Textprofile wurde wieder einfacher gemacht.
  1177. Sie unterscheidet jetzt die folgenden Fälle, die in der Infozeile
  1178. ausgewiesen werden
  1179.  
  1180.     a) Kein Profil zugeordnet. In diesem Falle werden die
  1181.     Einstellungen des Textprofilmenüs aus dem beim Öffnen oder
  1182.     Neuanlegen aus dem Defaultprofil gesetzt und in der INF-Datei
  1183.     gespeichert, falls die komplette Arbeitsumgebung gesichert
  1184.     werden muß. Anzeige in der Infozeile: '[Intern]'.
  1185.  
  1186.     b) Ein Privatprofil. Dies ist der Fall, wenn dem Text ein
  1187.     Profil über den Namen zugeordnet wurde, also z. B. das Profil
  1188.     'TEST.JTP' zur Datei 'TEST.DOC'. Dieses Profil wird bei
  1189.     Änderungen automatisch gesichert. Anzeige in der Infozeile:
  1190.     '[Privat]'
  1191.  
  1192.     c) Ein Typprofil. Dies ist der Fall, wenn dem Text ein Profil
  1193.     über den Dateityp zugeordnet wurde, also z. B. das Profil
  1194.     'C.JTP' zur Datei 'TEST.C'. Dieses Profil wird bei Änderungen
  1195.     ebenfalls automatisch gesichert. Weiterhin werden Änderungen
  1196.     auf alle Texte übertragen, die dasselbe Profiil besitzen.
  1197.     Anzeige in der Infozeile: Der entsprechende Dateityp.
  1198.  
  1199. Darüber hinaus wird beim Speichern eines Profils geprüft, ob es einem
  1200. geladenen Text als Typ- oder Privatprofil zugeordnet werden muß, und
  1201. der entsprechende Text wird demgemäß aktualisiert.
  1202.  
  1203. 211 Die Zuordnungen für Typprofile können jetzt auch in JAnE selbst
  1204. eingestellt werden.
  1205.  
  1206. *** Änderungen bis 22.12.96
  1207. 212 Der Code zum Laden einer Fließtextdatei wurde völlig neu
  1208. geschrieben. Er sollte sich jetzt nicht mehr mit den Spalten
  1209. verzählen.
  1210.  
  1211. 213 Neben Funktionstasten können jetzt auch AES-Messages mit Makros
  1212. belegt werden. Dazu dient der neue Menüpunkt "AES-Nachrichten" unter
  1213. "Makros". Der danach erscheinende Dialog funktioniert genauso wie der
  1214. Dialog zur Funktionstastenbelegung, nur daß anstelle des Tastencodes
  1215. die Nachrichtennummer eingegeben werden muß. Diese Nummer kann sowohl
  1216. dezimal als auch hexadezimal eingegeben werden; dazu dienen die
  1217. beiden Editfelder oben in der Box.
  1218.  
  1219. Die in JAnE "hart verdrahteten" Messagebehandlungen (so z. B. die
  1220. Standardmessages für Fenster- und Menühandling, Drag & Drop,
  1221. VA-Protokoll) können allerdings dadurch nicht ausgehebelt werden. Zur
  1222. Zeit erfolgt aber auch keine Warnung. Solche Message-Handler werden
  1223. zwar eingestellt, aber nie aufgerufen, da die interne Behandlung
  1224. Vorrang hat.
  1225.  
  1226. Wie muß nun ein solcher Message-Handler in SCEleton kodiert sein?
  1227. Eigentlich ganz einfach: Er muß - genau wie ein Tastenhandler - ein
  1228. parameterloser Makro sein. Um nun an die Parameter aus dem
  1229. AES-Messagebuffer zu kommen, dient die Laufzeitfunktion 'applparms()'.
  1230. Sie wird folgendermaßen aufgerufen:
  1231.  
  1232.     liste = applparms(format);
  1233.  
  1234. Dabei ist 'format' eine Zeichenkette, die das Layout des
  1235. Messagepuffers beschreibt (genau wie bei 'applsend()' und
  1236. 'applreceive()'). Je ein Buchstabe steht für den Typ eines
  1237. Datenelementes:
  1238.  
  1239.     'w' = word
  1240.     'l' = longword
  1241.     's' = string (Adresse einer nullterminierten Zeichenkette)
  1242.  
  1243. Der Messagepuffer wird in die entsprechenden Elemente zerlegt, die
  1244. in 'liste' zurückgegeben werden.
  1245.  
  1246. 214 Analog zu 'setfkey()' und 'killfkey()' für Funktionstasten gibt es
  1247. jetzt auch die SCEleton-Calls 'setmessage()' und 'killmessage()' zum
  1248. Belegen von AES-Nachrichten. Die Syntax deckt sich mit 'setfkey()'
  1249. und 'killfkey()', nur daß als erster (bzw. einziger) Parameter
  1250. anstelle des Tastennamens die Message-Nummer als Zahl übergeben wird.
  1251. Beispiele:
  1252.  
  1253.     setmessage(4711, makro, paket);
  1254.     killmessage(4711);
  1255.  
  1256. *** Änderungen bis 26.12.96
  1257. 215 Beim komplexen Ersetzen werden im Ersatztext eingebettete Hexcodes
  1258. jetzt korrekt umgesetzt.
  1259.  
  1260. 216 Enthält ein Makropaket einen Makro namens 'autoexec', so wird
  1261. dieser schon beim Laden ausgeführt. Der Sinn der Sache besteht darin,
  1262. etwaige Initialisierungen schon beim Laden automatisch durchführen zu
  1263. können. Auf diese Art kann ein Paket z. B. benötigte Tasten- oder
  1264. Nachrichtenbelegungen selbständig installieren.
  1265.  
  1266. 217 Mit der Funktion 'myself()' kann ein Makropaket seinen eigenen
  1267. Dateinamen erfragen. Beispiel:
  1268.  
  1269.     name = myself();
  1270.  
  1271. 218 Mit den Funktionen 'getfkey()' und 'getmessage()' kann ein
  1272. Makropaket prüfen, ob eine Taste bzw. Message schon belegt sind, und
  1273. wenn ja, womit. Der Rückgabewert ist in beiden Fällen eine
  1274. Zeichenkette, die den Makronamen UND den Paketnamen enthält, getrennt
  1275. durch einen Semikolon. Beispiel:
  1276.  
  1277.     name = getmessage(4711);
  1278.     name = getfkey("F1");
  1279.  
  1280. Bei unbelegten Einträgen ist der Rückgabestring logischerweise leer.
  1281.  
  1282. 219 Bei Makros, die über "Makros/Ausführen" gestartet wurden, klappt
  1283. die Dialog im SCEleton-Fenster jetzt wieder.
  1284.  
  1285. 220 Der SCEleton-Interpreter baut jetzt bei jedem Start einer
  1286. Makrosequenz einen neuen Maschinenkontext auf, ohne einen eventuell
  1287. vorhandenen Kontext zu überschreiben. Damit sollte sie besser mit der
  1288. Situation umgehen können, daß ein Makro eine JAnE-Funktion aufruft,
  1289. die ihrerseits wieder einen Makro startet. Diese Situation kann jetzt
  1290. häufiger auftreten als in älteren Versionen, da z. B. schon das
  1291. Öffnen eines Makropaketes zur Ausführung eines "autoexec"-Makros
  1292. führen kann.
  1293.  
  1294. 221 JAnE beherrscht nunmehr auch eine Kürzelexpansion, die genau wie
  1295. der Makrorecorder auf SCEleton aufbaut. Jedem Text kann über das
  1296. Textprofil ein Makropaket als Kürzelliste zugewiesen werden
  1297. (Menüpunkt: "Textprofil/Kürzelmakros"). Als Kürzel fungieren die
  1298. Namen der parameterlosen Makros in diesem Paket. Die Expansion
  1299. erfolgt mit der Tastenfunktion "Kürzelmakro expandieren", die in der
  1300. Defaulteinstellung auf "Escape" liegt. Der Makroname muß dazu als
  1301. separates Wort im Text stehen; der Textcursor muß dazu auf oder
  1302. direkt hinter dem Makronamen stehen. Alternativ kann der Makroname
  1303. als Block selektiert sein. Bei der Expansion wird dann der Makroname
  1304. aus dem laufenden Text gelöscht und anschließend der zugehörige Makro
  1305. gestartet. Die Cursorposition befindet sich dann am ehemaligen
  1306. Wortanfang bzw. Blockanfang, so daß die Eingaben, die der Makro
  1307. macht, den Makronamen ersetzen.
  1308.  
  1309. 222 Die Namen der aktuell geladenen Texte und Makropakete werden
  1310. numnmehr direkt in die Menüs "Makros" und "Texte" eingesetzt, so daß
  1311. der Aufruf des nachgelagerten Popups entfällt. Ersparnis: 1 Mausklick
  1312. ;-) Die Popups sind aber nach wie vor vorhanden und können über
  1313. Tastaturkürzel aufgerufen werden.
  1314.  
  1315. 223 Auch beim Einfügen eines Tabs wird nun zuvor ein evtl.
  1316. selektierter Block gelöscht.
  1317.  
  1318. 224 Bei automatischem Umbruch werden nunmehr die Absatzenden in der
  1319. Textanzeige markiert.
  1320.  
  1321. *** Änderungen bis 10.1.97
  1322. 225 Da zu einem Fließtext eine Umbruchspalte angegeben werden muß,
  1323. wurde ein entsprechendes Eingabefeld in den Dateiformatdialog
  1324. aufgenommen.
  1325.  
  1326. 226 Die Fließtexteinstellung beim Laden und Speichern sollte jetzt
  1327. auch unabhängig vom Schalter für automatischen Umbruch funktionieren.
  1328. Bei abgeschaltetem Umbruch werden Absätze aber nur durch Leerzeilen
  1329. markiert.
  1330.  
  1331. 227 Im Suchdialog wird der Schalter 'Suchbereich = Block' gesperrt,
  1332. wenn kein Block selektiert ist.
  1333.  
  1334. 228 Im Dialog "Textprofil/Allgemeines" wird "Fließtext" jetzt
  1335. gesperrt, wenn das Dateiformat auf "Binär" steht.
  1336.  
  1337. 229 Wenn der automatische Umbruch abgeschaltet ist, d.h. Absatzenden
  1338. durch Leerzeilen markiert sind, werden jetzt auch beim nachträglichen
  1339. Formatieren die entsprechenden Leerzeilen wieder eingefügt.
  1340.  
  1341. 230 Bug repariert, der dazu führte, daß die Undo-Funktion sich bei
  1342. eingeschalteten Textattributen noch gelegentlich mit den Spalten
  1343. verzählte.
  1344.  
  1345. 231 Das Markieren von Klammerblöcken bei eingeschalteten
  1346. Textattributen funktionierte nicht richtig, wenn im Klammerwort
  1347. Attributzeichen standen.
  1348.  
  1349. 232 Bug beim Zusammenfügen von Makropaketen beseitigt, der dazu
  1350. führte, daß SCEleton bei Verweisen auf globale Variable und
  1351. Unterfunktionen durcheinander kam.
  1352.  
  1353. 233 JAnE sucht jetzt schon beim Start ein Makropaket namens JANE.SCC
  1354. im Default-Verzeichnis (also dort, wo auch die Resource steht) und
  1355. lädt es, falls es existiert. Dieses Paket kann eine Grundausstattung
  1356. an Makros enthalten. Außerdem bekommt es eine spezielle Bedeutung im
  1357. Zusammenhang mit dem Makrorecorder (s. u.).
  1358.  
  1359. 234 Der Makrorecorder wurde überarbeitet: Man kann jetzt schon beim
  1360. Anlegen eines Makros festlegen, was später damit passieren soll. Es
  1361. gibt folgende Varianten:
  1362.  
  1363.     - Inhalt von 'recorder' anzeigen: Das ist das bisherige Verhalten,
  1364.     außer daß der Compile-Dialog nicht mehr automatisch kommt.
  1365.  
  1366.     - Makro in das Standardpaket aufnehmen: Der Makro wird an JANE.SCC
  1367.     (s. o.) angehängt.
  1368.  
  1369.     - Makro in die aktuelle Kürzelliste aufnehmen: Dito, nur für die
  1370.     Kürzeldatei des Textprofils. Demgemäß ist dieser Punkt nicht
  1371.     wählbar, wenn das Textprofil keine Kürzelliste enthält.
  1372.  
  1373. In den beiden letzten Fällen kann man auch schon sofort festlegen,
  1374. welche Funktionstaste später belegt werden soll.
  1375.  
  1376. *** Änderungen bis 22.1.97
  1377. 235 Schlüsselregistrierung eingebaut. Die Registrierdaten werden in
  1378. einem Unterdialog des Info-Dialoges eingegeben. Die
  1379. Shareware-Einschränkungen bestehen darin, daß nur 3 Texte und 3
  1380. Makropakete gleichzeitig geöffnet werden können. Außerdem erscheint
  1381. beim Programmende und beim Sichern von Files eine aufmunternde
  1382. Meldung.
  1383.  
  1384. 236 Die Kommandos 'Undo' und 'Zurücksetzen' funktionieren jetzt auch
  1385. für Makropakete: Beide Kommandos laden die letzte Version des Paketes
  1386. von der Platte zurück.
  1387.  
  1388. 237 Der Druckerdialog zeigt jetzt für GDOS-Treiber die Klartextnamen
  1389. anstelle der Dateinamen an.
  1390.  
  1391. 238 JAnE fungiert jetzt auch als OLGA-Server.
  1392.  
  1393. 239 Es besteht die Möglichkeit, die Liste der Schlüsselworte für die
  1394. Hervorhebungen aus einem Text zu übernehmen, Dabei wird jeweils das
  1395. erste Wort jeder Zeile übernommen.
  1396.  
  1397. 240 Die Makrofenster haben einen neuen Button bekommen: "Löschen".
  1398. Damit kann der gerade selektierte Makro gezielt aus dem Paket
  1399. gelöscht werden. Diese wird allerdings dann gesperrt, wenn der Makro
  1400. von anderen Makros aufgerufen wird. Dann wäre ein Löschen auch
  1401. tödlich.
  1402. Diese Funktion ist dafür gedacht, ein Paket zu pflegen, das über den
  1403. Makrorecorder zusammengestellt wurde, ohne daß der Quelltext manuell
  1404. bearbeitet wurde. In solchen Paketen sind einzelnen Makros i. d. R.
  1405. unabhängig voneinander, so daß das Löschen immer möglich ist.
  1406.  
  1407. 241 Fehler behoben, der dazu führte, daß in den Textprofilen u. U.
  1408. defekte Informationen über Kürzellisten abgespeichert wurden.
  1409.  
  1410. *** Änderungen bis 22.3.97
  1411.  
  1412. 242 Der Befehl 'mypath' funktioniert jetzt auch in Makros, die
  1413. über die Kommandozeile mit '-x' gestartet werden.
  1414.  
  1415. 243 Makropakete, die beim Übersetzen automatisch gesichert werden,
  1416. werden nicht mehr als geändert markiert.
  1417.  
  1418. 244 Wenn in der aktuellen Konfiguration "Arbeitsumgebung sichern"
  1419. eingeschaltet ist, wird jetzt auch beim Neulesen einer .INF-Datei
  1420. (auch per Makro) erstmal der aktuelle Stand gesichert.
  1421.  
  1422. 245 Zudem werden jetzt beim Neulesen einer.INF-Datei die im Speicher
  1423. stehenden Makropakete gelöscht. Falls die Aktion von einem Makro aus
  1424. angestoßen wurde, wird das gerade laufende Paket natürlich von der
  1425. Bereinigung ausgenommen.
  1426.  
  1427. 246 Die Warnung beim Überschreiben von Makropaketen sollte jetzt nur
  1428. noch bei "Speichern als..." erfolgen.
  1429.  
  1430. *** Änderungen bis 15.3.97
  1431. 247 Das Aussehen der 3D-Oberfläche wurde etwas modifiziert. Ich hoffe,
  1432. es gefällt ;-)
  1433.  
  1434. 248 Fehler beim formatierten Ersetzen mit Registern beseitigt: Wenn
  1435. die Fundstelle mit '^' begann, verzählte sich die Erstzroutine beim
  1436. "Ausschneiden" der Registerinhalte aus dem Ursprungstext um ein
  1437. Zeichen.
  1438.  
  1439. 249 Die Routine für den automatischen Zeilenumbruch wurde komplett
  1440. überarbeitet und erhält jetzt Einrückungen im Text.
  1441.  
  1442. 250 JAnE stürzt nicht mehr ab, wenn der OLGA-Manager nachgestartet
  1443. wird.
  1444.  
  1445. 251 Die Einschränkung, daß hervorzuhebende Schlüsselworte aus dem
  1446. Wortzeichensatz stammen müssen, wurde aufgehoben.
  1447.  
  1448. *** Änderungen bis 19.3.97
  1449. 252 Fehler behoben, der zu Abstürzen führte, wenn die Hervorhebungen
  1450. eingeschaltet wurden, ohne daß Schlüsselworte definiert waren.
  1451.  
  1452. 253 Eine kleine grafische Unschönheit beim "Starten"-Button der 
  1453. Makrofenster bereinigt.
  1454.  
  1455. *** Änderungen bis 26.3.97
  1456. 254 Der Aufbau der Undo-Informationen konnte bei Speichermangel zu
  1457. Zeigersalat und damit zu Abstürzen führen. Das sollte jetzt nicht
  1458. mehr passieren.
  1459.  
  1460. 255 Wenn bei "Alles ersetzen" die Undo-Information nicht angelegt
  1461. werden kann, erscheint jetzt eine Warnung, die die Möglichkeit
  1462. offenläßt, trotzdem fortzufahren.
  1463.  
  1464. 256 "Löschen bis Zeilenanfang" hängt sich nicht mehr auf, wenn die
  1465. Zeile mit einem highgelighteten Schlüsselwort anfängt.
  1466.  
  1467. 257 Fehler beim automatischen Umbruch eingerückter Zeilen behoben.
  1468.  
  1469. *** Änderungen bis 30.3.97
  1470. 258 Das Ersetzen von mehrzeiligen Fundstellen durch 'nichts' sollte
  1471. jetzt korrekt durch Löschen der Fundstelle (anstatt nur Leeren der
  1472. Zeilen) quittiert werden. Außerdem sollte es jetzt nicht mehr
  1473. passieren, daß in diesem Fall nach dem Abschluß von "Alles ersetzen"
  1474. ein willkürlicher Block markiert ist.
  1475.  
  1476. 259 Fehler beseitigt, der dazu führte, daß beim automatischen Umbruch
  1477. gelegentlich das erste Zeichen eines Wortes verloren ging.
  1478.  
  1479. 260 Beim Selektieren von Klammern werden jetzt Klammerausdrücke als
  1480. Wortbestandteile ignoriert.
  1481.  
  1482. 261 Ein gesperrter Text kann jetzt geschlossen werden. Es erscheint
  1483. nur eine zusätzliche Warnung.
  1484.  
  1485. 262 Die Routine zum Schließen aller offenen Dateien aktualisiert jetzt
  1486. auch das Textmenü.
  1487.  
  1488. 263 Die Klammerdefinitionen im Textprofil ziehen jetzt auch sofort
  1489. nach dem Neuladen eines Profils.
  1490.  
  1491. 264 Wird beim Start ein Makro mit '-x' ausgeführt, der eine neue
  1492. INF-Datei lädt, so sollte die Verkettung der Makropakete jetzt nicht
  1493. mehr in Unordnung geraten.
  1494.  
  1495. 265 Überschrift des Fileselectors bei der Auswahl eines Typprofils
  1496. korrigiert. Gleichzeitig einen Vertipper in der Routine für die
  1497. Zuordnungen beseitigt, der zu Zeigersalat führen könnte.
  1498.  
  1499. 266 Beim Vorwärts-Markieren per Tastatur mit Control-I wird jetzt das
  1500. Cursorzeichen nicht mehr mitselektiert.
  1501.  
  1502. 267 Es gibt eine neue Option im Dialog für die Hervorhebungen:
  1503. "GROSS=klein". Ist dieser Punkt selektiert, so werden die
  1504. Schlüsselworte unabhängig von Groß- und Kleinschreibung erkannt. Das
  1505. ist für Programmiersprachen gedacht, die diese Unterscheidung auch
  1506. nicht machen.
  1507.  
  1508. 268 Wenn die Kommentardefinitionen geändert werden und die
  1509. Hervorhebungen aktiv sind, wird der Text jetzt sofort neugezeichnet.
  1510.  
  1511. 269 Es gibt zwei neue SCEleton-Befehle, die in erster Linie dazu
  1512. dienen, Makropakete, die einen größeren Text über die
  1513. Pufferfunktionen zeilenweise bearbeiten, griffiger zu machen. Bisher
  1514. war es so, daß Aufrufe wie 'bufputline' zu einem sofortigen
  1515. Neuzeichnen des Textes führten, was einiges an Zeit verschlang. Das
  1516. läßt sich nun optional unterdrücken:
  1517.  
  1518.     bufautodraw(flag);
  1519.  
  1520. Dieser Befehl setzt ein internes Flag, das das automatische
  1521. Neuzeichnen aus- oder einschaltet.
  1522.  
  1523.     flag = 0:        Ausschalten
  1524.     flag = 1:        Einschalten
  1525.     flag = -1:        Nur den aktuellen Wert abfragen
  1526.  
  1527. Beim Start einer Makrosequenz ist das Neuzeichnen immer eingeschaltet.
  1528.  
  1529.     bufredraw(handle);
  1530.  
  1531. Dieser Befehl zeichnet das Fenster des Puffers mit Handle 'handle'
  1532. neu, sofern es offen ist.
  1533.  
  1534. 270 Wenn ein Auschnitt aus einem Text ohne Effekte ins GEM-Clipboard
  1535. befödert wird, wird jetzt auch die Datei SCRAP.JTX gelöscht.
  1536.  
  1537. 271 Fehler behoben, der dazu führte, daß u. U. auch in die SCRAP.TXT
  1538. Effektinformationen geschrieben wurden.
  1539.  
  1540. 272 Fehler behoben, der dazu führte, daß Textprofile auch dann schon
  1541. zugeordnet wurden, wenn die tatsächliche Dateierweiterung ein Präfix
  1542. des eingestellten Dateityps war.
  1543.  
  1544. Harald
  1545.  
  1546.